 ActiveLock

ActiveLock is a free ActiveX control that can be used to protect your softwares against piracy and to sell your programs online.

With ActiveLock you can lock some parts of your program, create trialware with evaluation periods or demos that can be executed a certain number of times.

ActiveLock does what every component should do: hides the complexity and exposes the useful information. On the background, ActiveLock encrypts data, save and restore information from the registry, manages evaluation periods, but you don't have to worry about that!

The ActiveLock package also includes KeyGenerator, a free tool that can be used to generate LiberationKeys to unlock your softwares.

We hope that you find ActiveLock useful. If you like it, please visit us at our web site and read about the lastest news!

See also:

    Using ActiveLock
    ActiveLock properties
    Disclaimer


 KeyGenerator

KeyGenerator is a free software distributed with ActiveLock that can be used to generate valid LiberationKeys.

In order to be able to give (or sell) valid LiberationKeys to your users, you must know the following information:

    Your software's Password.
    Your user's SoftwareCode.
If your program uses SoftwareCodeLength or LiberationKeyLength other than 16 characters, you should have this information too.

NOTE: Nobody will be able to generate valid LiberationKeys for your program, as long as you keep your Password in secret. Therefore, NEVER distribute your Password!

Visit our web site to know how your users can register.

See also: ActiveLock


 DISCLAIMER

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


 Using ActiveLock

You have spent much time developing your software, now it's time to distribute it. ActiveLock is the first rapid software licensing and protection system, and it will help you to get your job done in minutes.

Place ActiveLock on any form, set two properties using the property sheets and you are ready to go !

The following sections will explain how can you use ActiveLock to create "crippleware", "trialware" or "demos" with few lines of code:

    Creating "crippleware"
    Creating "trialware"
    Creating "demos"


 Creating "crippleware"

The "crippleware" approach consists on disabling some features of your program until user's registration. (Example: you could disable the open, save or print options; use nag screens or create any other limitation.)

ActiveLock can help you to lock any features of your program by detecting user registration.

NOTE: There is a serious drawback with this approach: if your users can't evaluate your program, they're not going to register it. Therefore, avoid disabling features that are really important to the operation of your software.

See also: RegisteredUser property.


 Creating "trialware"

"Trialware" is a full-featured program that disables itself entirely after a certain period.

ActiveLock can help you to create "trialware" by tracking user registration and evaluation periods.

See also:

    RegisteredUser property.
    UsedDays property.
    LastRunDate property.


 Creating "demos"

A "Demo" is a program (full-featured or not) that can be executed a certain number of times.

ActiveLock has an internal counter that can be used to track the number of times your program was executed.

See also: Counter property.


 ActiveLock properties

    Counter
    LastRunDate
    LiberationKey
    Password
    RegisteredUser
    SoftwareCode
    SoftwareName
    UsedDays


 Counter property

Returns a Long value indicating the number of times this property was called. Read-only.

Examples:

' Evaluation Period
If (ActiveLock1.Counter > 10) Then
MsgBox "You have used this program 10 times."
End
End If


 LastRunDate property

Returns a Date value indicating the date when it was last called. Read-only.

This property is often used with the UsedDays property to avoid that one user change the computer's clock in order to extend his/her evaluation period.

Example:

' Detect time settings changes
If (ActiveLock1.LastRunDate > Now) Then
MsgBox "Please, correct your time settings and try again!"
End
End If


 LiberationKey property

Stores a LiberationKey entered by the user.

After setting the LiberationKey property, you can check the RegisteredUser property to see if it was a valid key.

Example:

'--- User typed a key on the textbox and pressed "OK"
Private Sub cmdOK_Click()
ActiveLock1.LiberationKey = Text1.Text
End Sub

See also:

    SoftwareCode
    KeyGenerator


 Password property

You should assign a different password for each program you develop. This can be done at run-time or at design-time.

If you choose to assign a password at design-time, it will be easier to hide it inside your code.

Example:

'--- Assign a password to your program
ActiveLock1.Password = "ALEPH"

IMPORTANT: You are not supposed to distribute this password, because it is your software's lock. Use this password to generate LiberationKeys with the KeyGenerator.

See also: SoftwareCode property.


 RegisteredUser property

Returns a boolean value indicating if the software was properly registered or not. Read-only.

We can tell if the software was properly registered if the user has entered a valid LiberationKey. The LiberationKey depends on the user's SoftwareCode and on the Password that you choose.

Example:

'--- Check if user has registered
If ActiveLock1.RegisteredUser Then
MsgBox "Thanks for registering!"
Else
MsgBox "You haven't registered yet!"
End If


 SoftwareCode property

Returns a string with a value that identifies each user of your software. Read-only.

When a user install your program, he/she will be assigned with an unique SoftwareCode. To unlock the software he/she will need an unique LiberationKey, that only you can provide.

Example:

'--- Display SoftwareCode
Label1.Caption = "Your SoftwareCode is " & _
ActiveLock1.SoftwareCode

NOTE: This SoftwareCode will remain on the user's system even if he/she uninstall your program.

See also: KeyGenerator


 SoftwareName property

Assign an unique SoftwareName for each program you develop. This can be done at run-time or at design-time.

You can make sure that your SoftwareName is unique by using your company name, software name and version number.

See also: Password property.


 UsedDays property

Returns a Long value indicating the number of days since the first time it was called. Read-only.

Examples:

' Evaluation Period
If (ActiveLock1.UsedDays > 21) Then
MsgBox "Your evaluation period has expired! Please register!"
End If

NOTE: This property is often used with the RegisteredUser property, because you don't want to display the nag screen if the user has already registered.

' Evaluation Period (Better example)
If Not (ActiveLock1.RegisteredUser) And ActiveLock1.UsedDays > 21 Then
MsgBox "Your evaluation period has expired!"
End If

See also: LastRunDate property.